home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / misc / Logon_098.lha / logon.dok < prev    next >
Text File  |  1996-11-09  |  15KB  |  348 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                 Luxus Logon
  16.                                 
  17.                                 von M. Albrecht
  18.                                 
  19.                                 
  20.                                 (C) 1993-1996
  21.                                 
  22.                                 Alle (kommerziellen) Rechte
  23.                                 vorbehalten, Verbreitung
  24.                                 als Freeware erlaubt -
  25.                                 kein Gewinn durch das
  26.                                 spezifische Anbieten dieses
  27.                                 Programmes gestattet
  28.                                 
  29.                                 Verbreitung auf CDRom,
  30.                                 Magazin-Disk oder ähnlichem
  31.                                 nur nach vorheriger Absprache
  32.                                 mit dem Autor.
  33.                                 
  34.                                 Verbreitung über das Aminet
  35.                                 sowie die daraus resultierenden
  36.                                 CDRoms ausdrücklich gewünscht.
  37.                                 
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. 1. VORWORT
  55.  
  56. Dieses Programm, im Folgenden LOGON genannt, entstand 1993, als mein
  57. damaliger Betatester für Mailbox-Tools wegen seines Urlbaubs eine Lösung
  58. brauchte, die sein Modem überwacht, nach dem Klingeln abnimmt und je nach
  59. den weiteren Geschehnissen Aktionen ausführte oder nur eine Absage
  60. schickte...
  61. Ich nannte es damals SerialButler, es war ein simples Frontend zum Einsatz
  62. vor Mailbox, Fax oder ähnlichem.
  63. Heute, nachdem ich trotz intensivem Suchens kein DialUp Programm gefunden
  64. hatte, das mir wirklich gefiel und das sofort "at hand" war, habe ich den
  65. Butler reaktiviert, mit einem schlichten GUI versehen und vom
  66. Funktionsumfang etwas erweitert.
  67.  
  68. Die aktuelle Version LOGON V0.98 ist als Commodity programmiert, das GUI
  69. ist in der Größe variabel und die Anwendung ist, besteht ein
  70. funktionierendes Script, nicht weiter vereinfachbar.
  71.  
  72.  
  73.  
  74. 2. BENUTZUNG
  75.  
  76. Als ToolTypes (bei Workbenchstart) kann neben den Standard-Tooltypes für
  77. Commodities ("HOTKEY", "CX_POPUP" und "PRIORITY") noch ein solcher für das
  78. zu ladende Script angegeben werden: "SCRIPT=T-Online.script" lädt z.B. das
  79. genannte Script.
  80.  
  81. Beim Start vom CLI aus können die Tooltypes als Argumente übergeben werden.
  82.  
  83. Wenn ein funktionierendes Script (es liegt eines für T-Online bei) geladen
  84. ist, so muß lediglich beim ersten Programmstart "Script/Enter Values"
  85. (Amiga-V) aufgerufen werden. Hier wird der Benutzer nach User-Name und
  86. Passwort gefragt. Sind alle erforderlichen Werte eingegeben (das heißt: die
  87. Liste beginnt von vorn), schließt der Benutzer das Fenster, speichert das
  88. geänderte Script mit "Project/Save" (Amiga-W) ab und startet, nach Wunsch,
  89. den Connect mit der Maus oder "C".
  90. Voraussetzung beim mitgelieferten T-Online-Script ist ein korrekt
  91. installiertes AmiTCP 4.xx, dessen "StartNet" im Pfad erreichbar ist und auf
  92. Point-2-Point mit IP und DESTINATION-IP eingestellt ist. Ein
  93. Beispiel-Startnet für AmiTCP ist beigelegt.
  94.  
  95. Eventuell ist es nötig, die Parameter für das serielle Device sowie das
  96. benutzte Modem zu ändern. Dazu sollte "Script/Edit" (Amiga-E) aufgerufen
  97. werden und im oberen linken Viertel des Windows die Einstellungen angepasst
  98. werden. Das AT-Kommando für das Modem ist als "Start-AT" auf der rechten
  99. Seite zu finden.
  100.  
  101. Disconnect dient dazu, kontrolliert die Verbindung abzubauen - dies kann
  102. z.B. ein "StopNet", Zurücksetzen des Modems und Neustarten eines Mailers
  103. beinhalten.
  104.  
  105.  
  106.  
  107. 3. SCRIPTE ERSTELLEN
  108.  
  109. Hat man sich einmal mit der Programmlogik angefreundet, ist das Erstellen
  110. neuer Script sehr schnell getan. Grundgedanke eines Scripts ist immer:
  111.  
  112. - Ich sende etwas an das Modem
  113. - ich warte auf zwei alternative Antworten oder ein Timeout
  114. - je nach Antwort wird an eine andere Scriptstelle verzweigt oder ein
  115.   externes Programm ausgeführt
  116. - erfolgt ein Timeout wird die rechte Alternativ-Seite ausgeführt.
  117.  
  118. Zunächst sollte die obere Hälfte des Edit-Script Fensters ausgefüllt
  119. werden. Diese Werte bleiben während des gesamten Scripts erhalten und
  120. dienen dem Start und Ende des Programms.
  121. Device, Unit und Baud sollten keine Fragen aufwerfen. Auf der rechten
  122. Hälfte des Fensters finden sich String-Gadgets mit folgenden Bedeutungen:
  123.  
  124. START-BATCH wird ausgeführt, BEVOR das serielle Device geöffnet wird. Als
  125. Anwendungsbeispiel denke man sich, daß ein auf der selben Schnittstelle
  126. laufender Mailer zunächst heruntergefahren werden sollte (z.B. mit traptell
  127. "unlisten").
  128.  
  129. START-AT wird nach dem Öffnen der Schnittstelle und dem Leeren des Puffers
  130. an das Modem gesandt. Sinnvoll ist hier zumindest ein "AT", damit das Modem
  131. sich auf die eventuell geänderte Baud-Rate einstellen kann. Ein "\r"
  132. bedeutet ein $0C - normalerweise der Zeilenabschluß für Modems. Ein "\n"
  133. wäre ein normales Linefeed $0A. Ein "\\" sendet ein einzelnes Backslash.
  134.  
  135. END-AT wird zum Modem gesandt, BEVOR der Disconnect-Teil des Scripts
  136. aufgerufen wird. Damit kann z.B. in den Commando-Modus des Modems
  137. gewechselt werden - oder was auch immer. "\n", "\r" und "\\" wie oben.
  138.  
  139. END-BATCH wird ausgeführt, BEVOR das serielle Device für das
  140. Disconnect-Script geöffnet wird. Damit kann z.B. "StopNet" aufgerufen
  141. werden.
  142.  
  143.  
  144. Stimmen die Werte hier, kann das eigentliche Script erstellt werden.
  145.  
  146. Grundsätzlich muß für ein CONNECT auch ein "Connect"-Label vorhanden sein,
  147. wobei Groß-Kleinschreibung egal ist - es darf auch NACH dem "Connect" noch
  148. weiteres im Namen stehen, das ERSTE "Connect"-Label wird angesprungen, wenn
  149. der Benutzer auf das Connect-Gadget drückt.
  150. Das Gleiche gilt für "Disconnect" - es muß ein "Disconnect" Label vorhanden
  151. sein.
  152. Es ist sinnvoll, beide Label gleich zu Beginn zu erzeugen, damit keine
  153. "Script-Errors" auftreten. Die Position im Script ist egal.
  154.  
  155. Nun zum komplexesten Teil des Fensters: im unteren rechten Viertel wird
  156. jeder Script-Teil erstellt. Die Gadgets haben folgende Funktion:
  157.  
  158. LOG CMD: Diese Zeile wird (per Execute) zu Beginn des jeweiligen Labels
  159. ausgeführt - sie darf natürlich leer sein. Die Platzhalter "%l" und "%s[z]"
  160. funktionieren wie unten erklärt.
  161.  
  162. OUT: Diese Zeile wird zu Beginn des Labels an das Modem gesandt (sofern
  163. etwas im Gadget enthalten ist). Der String wird geparset, das heißt, daß
  164. "\r", "\l" und entsprechend "\\" durch CarriageReturn, LineFeed oder
  165. Backslash ersetzt werden.
  166.  
  167. TIMEOUT: Diese Zahl gibt die TICKS an (50 Ticks/Sekunde!), nach denen die
  168. rechte Seite der Optionen ausgeführt wird, wenn vorher nicht einer der
  169. Strings (s.u.) erkannt wurde. Ein TIMEOUT von 0 heißt, daß auf kein String
  170. gewartet wird sondern sofort weitergearbeitet wird, ein TIMEOUT von -1
  171. heißt, daß das Label NUR durch erkannte Strings abgebrochen werden kann.
  172. (Randbemerkung: jederzeit läßt sich die Script-Abarbeitung durch ein
  173. CTRL-C, an LOGON geschickt, abbrechen!)
  174.  
  175. Die zwei folgenden Spalten haben fast identische Funktionen. Ich nenne die
  176. linke Spalte die "GOOD", die rechte die "BAD" Spalte - da die rechte auch
  177. vom TimeOut ausgeführt werden kann.
  178.  
  179. Im zuoberst liegenden Stringgadget steht ein STRING-Element (Groß/Klein
  180. egal!), das als Trigger für die darunter stehende Funktion arbeitet.
  181. Enthält der vom Modem kommende Datenstrom die Zeichenkette, wird SOFORT
  182. NACH dem letzten im Stringgadget angegebenen Zeichen unterbrochen und die
  183. Funktion ausgeführt - das heißt, daß folgende Zeichen im Puffer verbleiben
  184. und dort ausgelesen werden können (dazu unten mehr).
  185.  
  186. Das Cycle-Gadget darunter enthält derzeit folgende Funktionen:
  187.  
  188. - Jump Label: springt, bei Erreichen der Zeichenkette, sofort an das unter
  189. dem CycleGadget genannte Label - dieses muß natürlich vorhanden sein!
  190.  
  191. - Repeat: wiederholt bei Erreichen der Zeichenkette das aktuelle Label
  192.  
  193. - Exit Script: Beendet das Script und führt ein DISCONNECT aus! (sinnvoll
  194.   also z.B. bei Fehlern!) - die serielle Schnittstelle wird geschlossen.
  195.  
  196. - Script End: Beendet das Script und schließt die serielle Schnittstelle.
  197.  
  198. - New Script: NOCH NICHT IMPLEMENTIERT! lädt das unter dem CycleGadget
  199.   angegebene Script und startet es beim Label "Connect".
  200.  
  201. - Execute: führt die unter dem CycleGadget angegebene Zeile aus und springt
  202.   zum FOLGENDEN Label (das heißt zum direkt nach dem aktuellen Label in der
  203.   List stehenden!)
  204.  
  205. - Close/Exe: schließt das serielle Device (ohne den Puffer zu leeren) und
  206.   führt die unter dem CycleGadget stehende Zeile aus. Wird z.B. nach dem
  207.   Login ein anderes Terminal-Programm gestartet, muß ja VOR dem Starten die
  208.   serielle Schnittstelle geschlossen worden sein.
  209.  
  210. - Disable: erlaubt das (temporäre) Deaktivieren eines Labels (das unter
  211.   dem CycleGadget angegeben wird). Das deaktivierte Label wird in dieser
  212.   Script-Ausführung NICHT mehr benutzt, statt dessen wird das direkt
  213.   auf das deaktivierte Label folgende Label angesprungen. 
  214.   Das bedeutet, das NACH einem Label, das deaktiviert werden KÖNNTE,
  215.   auf jeden Fall ein Ersatzlabel kommen sollte (das z.B. einfach einen
  216.   Jump zum nächsten ausführt).
  217.   Sinn der Sache ist: will man mehrere Nummern anwählen und erhält bei
  218.   bestimmten Nummern z.B. NO CARRIER, so kann man DIESE Nummer einfach
  219.   für weitere Anwahlversuche sperren.
  220.   Wird das Script NEU ausgeführt, werden ALLE Label wieder benutzt.
  221.  
  222. Die Fragezeichen rechts von String-Gadgets öffnen einen Filerequester, um
  223. das bequeme Finden von Pfad/Befehl zu ermöglichen.
  224.  
  225. Externe Funktionsaufrufe können Elemente aus dem seriellen Datenstrom
  226. übergeben bekommen. Das funktioniert so:
  227.  
  228. Enthält das Execute-Commando den Platzhalter "%l" (kleines "L"!), so wird
  229. der Rest der Zeile, die die gefundene Zeichenkette enthält, an die Stelle
  230. des Platzhalters gesetzt (beim LogCommand die gerade im Puffer liegende
  231. Zeile).
  232. Enthält das Execute-Commando den Platzhalter "%s", so wird das FOLGENDE
  233. Zeichen nach dem Platzhalter als Stop-Zeichen angesehen. Beispielsweise
  234. kopiert ein "%s." alle Zeichen aus dem seriellen Strom bis zum nächsten
  235. Punkt in die Execute-Zeile.
  236.  
  237. Beispiel: LOGON sucht nach dem String "YOURIP" im Datenstrom. Wurde dieser
  238. gefunden, wird der Befehl "startnet ip=%l" ausgeführt. Die Funktion: Kommt
  239. vom Modem das Wort "YOURIP" (egal, welche Schreibung), so wird "startnet"
  240. ausgeführt mit allem, was die "YOURIP"-Zeile nach dem "YOURIP" noch
  241. enthielt - hoffentlich also der aktuellen IP-Adresse.
  242.  
  243. Beispiel: LOGON sucht nach dem String "Sie haben" im Datenstrom. Wurde
  244. dieser gefunden, wird der Befehl "echo %sn neue Nachrichten" ausgeführt. Die
  245. Funktion: Kommt vom Modem der String "Sie haben", wird ein ECHO ausgeführt,
  246. das die nachfolgenden Zeichen bis zum nächsten kleinen "n" ausdruckt und
  247. den Text "neue Nachrichten" anhängt. Normalerweise stünde also beim
  248. automatischen Einloggen in eine Mailbox hinterher auf dem Bildschirm,
  249. wieviele neue Nachrichten in der Box für den Benutzer vorliegen.
  250.  
  251.  
  252. 4. SCRIPTE MODIFIZIEREN
  253.  
  254. In Scripten kann zwar beliebig geändert werden, da man aber z.B. jederzeit
  255. einen Label-Namen einfach umbenennen kann, die entsprechenden
  256. Sprunganweisungen im Script aber nicht automatisch angepasst werden, ist es
  257. sinnvoll, in einem komplexen Script bestimmte Stellen von extern anpassen
  258. zu lassen.
  259.  
  260. Enthält ein Label-Name als erstes Zeichen ein "!" (Ausrufungszeichen), so
  261. wird dieser Label vom Menü "Scripts/edit Values" benutzt.
  262.  
  263. So sollten z.B. in einem allgemeingültigen Mailbox-Login Username und
  264. Passwort als einzelne Labels mit den Namen "! Username" und "! Passwort"
  265. (das Freizeichen ist optional) angelegt werden. Ruft der Benutzer dann
  266. "Scripts/Edit Values" auf, wird er nach diesen Werten gefragt und die
  267. Eingaben werden als "OUT" String in die Labels eingefügt (werden also im
  268. entsprechenden Moment an das Modem gesandt).
  269.  
  270. Das beiliegende T-Online Script enthält die Teilnehmerkennung und das
  271. Passwort als solche Labels. Damit kann die Anpassung mit zwei Eingaben
  272. geschehen (vorausgesetzt, die Serial Parameter stimmen...)
  273.  
  274.  
  275.  
  276. 5. GEPLANTE ERWEITERUNGEN, PROBLEME ETC
  277.  
  278. Natürlich ist das Programm erweiterbar. Neben der noch einzubauenden "New
  279. Script" Funktion, die ein externes Script aufruft, wenn eine bestimmte
  280. Zeichenkette erkannt wurde, sind noch weitere Funktionen denkbar - wenn
  281. auch nicht unbedingt erforderlich.
  282.  
  283. Ich habe sowohl das Programm als auch die beigelegten Scripte mehrfach
  284. getestet - kann aber nicht garantieren, daß alles völlig bugfrei ist. Ich
  285. freue mich also über (sinnvolle) Bugreports und verspreche, baldmöglichst
  286. für Abhilfe zu sorgen.
  287. Das Programmgerüst selber ist einige Jahre alt - es ist durchaus möglich,
  288. daß da noch Schnitzer drinstecken, die ich trotz intensivem Suchens nicht
  289. gefunden habe.
  290.  
  291. Läuft ein Script ab, so wird der aktuell bearbeitete Label im Hauptfenster
  292. (wenn dieses offen ist) angezeigt. Leider kann man das Hauptfenster in der
  293. Zeit nicht "resizen" - ich war schlicht zu faul, hier das Multitasking voll
  294. auszureizen.
  295.  
  296. Denkbar wäre ein schlichter Monitor, der im Hauptfenster die aktuellen
  297. Eingaben/Ausgaben über die Schnittstelle anzeigt...
  298.  
  299.  
  300.  
  301. 6. DANK
  302.  
  303. Die GUIs wurden mit GenGui2.2 erstellt. GenGui ist ein Linkobject, das das
  304. größenvariable Erstellen von GUIs sehr einfach macht.
  305. GenGui ist (C) bei Matthias Meixner
  306. (meixner@rbg.informatik.th-darmstadt.de)
  307.  
  308.  
  309.  
  310. 7. RECHTLICHES
  311.  
  312. Logon darf nur im Original-Archiv weitergegeben werden. Das Archiv enthält
  313. ein T-Online-Script und ein einfaches Mailbox-Script. Zusätzliche Scripts
  314. dürfen GERNE hinzugefügt werden, diese sollten jedoch eindeutig benannt
  315. werden - ein kurzer Hinweis, welche externe Software erforderlich ist, wäre
  316. sinnvoll.
  317.  
  318. Mailbox-Werbung, Coder-Sprüche und sonstige Werbung oder unnötiger Ballast
  319. dürfen NICHT dem Archiv hinzugefügt werden, ich behalte mir ausdrücklich
  320. das Recht vor, die Verteilung über ein in solchen Readmes genannten System
  321. zu untersagen.
  322.  
  323. Soll Logon als Teil eines SoftwarePakets, egal, ob kommerziell oder
  324. idealistisch verwertet werden, ist eine SCHRIFTLICHE Einverständnis-
  325. Erklärung von mir erforderlich, ich behalte mir für jeden Einzelfall
  326. vertragliche Sonderkonditionen vor. Jede andere Form von Bundeling ist
  327. untersagt.
  328.  
  329. Die Verbreitung über Magazin-CDs oder Disks ist ohne vorherige
  330. Einverständniserklärung untersagt. Die Einverständniserklärung ist sehr
  331. leicht zu bekommen - aber erforderlich.
  332.  
  333. Die Verbreitung über Aminet und Aminet-CDs ist ausdrücklich erwünscht.
  334. Andere Serien-CD Kompilierer bitte ich vorher um Kontaktaufnahme.
  335.  
  336. Kein Teil des Code darf ohne meine Erlaubnis für andere Produkte verwendet
  337. werden, die Weitergabe eines modifizierten Hauptprogrammes ist streng
  338. untersagt.
  339.  
  340.  
  341.  
  342. 8. AUTOR
  343.  
  344. Adressen:
  345. Marc Albrecht, Seth 2, 21769 Lamstedt
  346. Marc Albrecht - 2:241/205 (FIDO)
  347. marc_albrecht@act-net.com
  348.